Chargement des librairies

Attention select de mass (dépendance de mixOmics) prend le pas sur dplyr

## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.3     ✓ purrr   0.3.4
## ✓ tibble  3.1.1     ✓ dplyr   1.0.5
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   1.4.0     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
## Loading required package: lattice
## 
## Loaded mixOmics 6.14.1
## Thank you for using mixOmics!
## Tutorials: http://mixomics.org
## Bookdown vignette: https://mixomicsteam.github.io/Bookdown
## Questions, issues: Follow the prompts at http://mixomics.org/contact-us
## Cite us:  citation('mixOmics')
## 
## Attaching package: 'mixOmics'
## The following object is masked from 'package:purrr':
## 
##     map
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows

Chargement des données brutes

chemin <- "../Raw_brut/"

#Echantillons
Sample <- read.csv2(paste0(chemin,"MI_Covariates.csv"))
Corres_var <- read.csv2(paste0(chemin,"MI_Covariates_corresp.csv"))
Corres_ID <- read.csv2(paste0(chemin,"Mb_Info_seq.csv"))

#Métabolites
NMR_CPMG <- read.csv2(paste0(chemin,"NMR_CPMG.csv"))
NMR_NOESY <- read.csv2(paste0(chemin,"NMR_NOESY1D.csv"))
List_cplte_CPMG <- read.csv2(paste0(chemin,"NMR_BUCKET_CPMG_LIST_assigned.csv"))
List_cplte_NOESY <- read.csv2(paste0(chemin,"NMR_BUCKET_NOESY_LIST_assigned.csv"))
List_CPMG <- read.csv2(paste0(chemin,"List_NMR.csv"))
List_NOESY <- read.csv2(paste0(chemin,"List_NOESY.csv"))


## Homogénéisation des noms de variables
##Attention package mass possède un select qui annule celui de dplyr
Sample_ID <- left_join(Sample,Corres_ID,by=c("DonorID"="DonorId")) %>% 
  relocate("Echantillon", .before = "DonorID")  %>% 
  dplyr::select(-"SeqDepth",-"DonorID")
rownames(Sample_ID) = Sample_ID$Echantillon

#Met la variable AGE en catégorie non hierarchisé et transformation en factor
Sample_ID <- Sample_ID %>% 
  dplyr::select(-"Echantillon") %>% 
  mutate(age = factor(AGE, levels = c(1, 2, 3, 4, 5), labels = c("[20-29]", "[30-39]", "[40-49]", "[50-59]", "[60-69]"))) %>% 
  mutate(SEX = factor(SEX)) 
Sample_ID$tabac <- factor(Sample_ID$tabac)



CPMG <- left_join(NMR_CPMG,Corres_ID,by=c("DonnorID"="DonorId")) %>% 
  relocate("Echantillon", .before = "DonnorID") %>% 
  dplyr::select(-c("DonnorID","Sample_type","VagueManip","Date","Spectre2","Exp","SeqDepth"))
rownames(CPMG) = CPMG$Echantillon
CPMG <- CPMG %>% 
  dplyr::select(-Echantillon)

NOESY <- left_join(NMR_NOESY,Corres_ID,by=c("DonnorID"="DonorId")) %>% 
  relocate("Echantillon", .before = "DonnorID") %>% 
  dplyr::select(-c("DonnorID","Spectre2","Exp","Sample_type","VagueManip","CV_Grps","CV_Grps6","CV_Grps7","CV_Grps8","CV_Grps9","SeqDepth"))
rownames(NOESY) = NOESY$Echantillon
NOESY <- NOESY %>% 
  dplyr::select(-Echantillon)

# Passage en matrice
Noesy <- as.matrix(NOESY)
Cpmg <- as.matrix(CPMG)




# ?mixOmics
# #selection des métabolites d'interêts. Voir pour transposer et ne selectionner que certaines col avec métabo nommés 
# List_CPMG1 <- t(List_CPMG)
# colnames(List_CPMG1) = List_CPMG1[1,]
# List_CPMG2 <-  t(List_CPMG1[3,])
# List_CPMG2 <- t(List_CPMG2)

BoxPlot

Il y a trop de buckets pour que ce soit exploitable. Sachant que seuls 20% sont assignés à des métabolites, il faudrait peut être voir pour ne prendre que ceux là ??

Au vue des boxplot qui sont difficilement exploitables, je suis resté sur la transformation log10(CPMG + 1e-6) Avant transformation, il y avait en sorte 2 groupes : inf et supérieure 0.10 Après transformation cela semble moins marqué mais il reste une “bande” > -1 A mon avis quelque soit la transformation, cela restera. Dois-je continuer pour les centrer ??



Visualisation des ACP

Les 2 premiers axes expliquent plus de 62% de la variance exprimée


  • En fonction des groupes :

Quelque soit le groupe étudié (sexe, tabac, âge), sur les axes 1 et 2, les différents points se superposent, il n’est donc pas possible de distinguer un groupe d’un autre. Visualisation montrer en fonction du groupe sexe Il y a un point complétement excentré (18%axe1 et 80% axe2) Homme 60-69ans exfumeur. Doit on garder cet individu (L31R124) ? C’est la plus petite moy (583e-5 et les autres >590e-5) max et min pas si différents des autres



Sur les axes 3 et 4 il est plus facile de distinguer les 2 sexes même s’il y a du chevauchement. Pour les 2 autres il n’est pas posssible de les discrimer. Il y a également 2 points completement excentrés à -20 et -50 axes 3 et 4. On les garde ? Pas discordant dans les autres métadatas



Biplot des 40 buckets qui contribuent le plus à la variance expliquée

La contribution de ces 40 buckets est entre 0.7 et 0.75

## Warning: ggrepel: 39 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

PCA issu du Package mixOmics

Pourquoi le graph plotInd de mixOmics semble être symétrique par rapport à celui de factominer L’individu est à-20 sur l’axe1 alors qu’il est à +20 avec ACP de factominer

Sparse PCA

Regarde si on peut observer naturellement une clusterisation en fonction d’une catégorie ? Quelque soit la catégorie sexe, age tabac, nous n’observons aucune clusterisation

PLS-DA

Pourquoi l’axe X variate1 est plus faible que l’axe2. Possibilité de changer manuellement avec comp=c(2,1) X.label

Cercle de correlation PLS-DA

N’est représenté uniquement les buckets qui contribuent à au moins 70%

Contribution des variables

Les variables sélectionnées pour la composante 1 sont exprimées de manière positives pour le sexe1 et négative pour le sexe2

Création du Dataset mixomics

ncomp correspond: The number of components to include in the model for each block (does not necessarily need to take the same value for each block). Je ne sais pas. J’ai mis 3 pour le tabac Ne fonctionne pas pour CPMG

## a Partial Least Squares - Discriminant Analysis is being performed (PLS-DA)
## a Partial Least Squares - Discriminant Analysis is being performed (PLS-DA)



Données NOESY

  • Non inclus car donne les mêmes choses que CPMG